Real-time Data Processing with Listeners

Database Tutorials - হ্যাজেলকাস্ট  (Hazelcast) Hazelcast Events এবং Listeners |
272
272

Hazelcast Listeners হল এমন একটি শক্তিশালী ফিচার যা আপনাকে Hazelcast ডেটা স্ট্রাকচারের মধ্যে রিয়েল-টাইম ডেটা প্রসেসিং করতে সহায়ক হয়। লিসেনারগুলি একটি ইভেন্ট-ড্রিভেন আর্কিটেকচারে কাজ করে, যেখানে আপনি ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে কোনো পরিবর্তন ঘটলে তা জানাতে পারেন এবং সেই অনুযায়ী কাজ করতে পারেন। এর মাধ্যমে Hazelcast সিস্টেমে ডেটার অন্তর্নিহিত পরিবর্তনগুলো দ্রুত সনাক্ত করা এবং সেগুলোর উপর অ্যাকশন গ্রহণ করা সম্ভব হয়।

Hazelcast Listeners ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে যেমন IMap, IQueue, ISet, IList ইত্যাদিতে পরিবর্তন হলে স্বয়ংক্রিয়ভাবে ট্রিগার হয়, যা রিয়েল-টাইম ডেটা প্রসেসিংয়ের জন্য ব্যবহৃত হয়।


Listeners এর বিভিন্ন ধরণ

Hazelcast এ প্রধানত তিন ধরনের Listeners ব্যবহৃত হয়:

  1. EntryListener: IMap বা অন্য Key-Value ডেটা স্ট্রাকচারে ডেটার এন্ট্রি (এন্ট্রি যোগ, পরিবর্তন বা মুছে ফেলা) সম্পর্কিত ইভেন্টগুলোর জন্য ব্যবহার করা হয়।
  2. ItemListener: ISet, IQueue, IList প্রভৃতি ডেটা স্ট্রাকচারে আইটেমের যোগ, মুছে ফেলা বা পরিবর্তন সম্পর্কিত ইভেন্টগুলোর জন্য।
  3. MapListener: IMap বা ডিস্ট্রিবিউটেড ম্যাপের মধ্যে ডেটার অতিরিক্ত কাস্টম ইভেন্ট ট্র্যাক করার জন্য।

1. EntryListener - IMap এর জন্য

EntryListener ব্যবহার করা হয় যখন আপনি IMap এর Key-Value পেয়ারে ডেটার পরিবর্তন সনাক্ত করতে চান। যেমন ডেটা যোগ, পরিবর্তন বা মুছে ফেলা।

ব্যবহার:

EntryListener এক বা একাধিক ইভেন্টে সাড়া দেয়, যেমন:

  • entryAdded: নতুন একটি এন্ট্রি যোগ করা হলে।
  • entryUpdated: একটি এন্ট্রি আপডেট হলে।
  • entryRemoved: একটি এন্ট্রি মুছে ফেলা হলে।

কোড উদাহরণ:

import com.hazelcast.core.EntryEvent;
import com.hazelcast.core.EntryListener;
import com.hazelcast.map.IMap;

public class MyEntryListener implements EntryListener<String, String> {

    @Override
    public void entryAdded(EntryEvent<String, String> event) {
        System.out.println("Entry added: " + event.getKey() + " = " + event.getValue());
    }

    @Override
    public void entryRemoved(EntryEvent<String, String> event) {
        System.out.println("Entry removed: " + event.getKey());
    }

    @Override
    public void entryUpdated(EntryEvent<String, String> event) {
        System.out.println("Entry updated: " + event.getKey() + " = " + event.getValue());
    }

    @Override
    public void entryEvicted(EntryEvent<String, String> event) {
        // Optional: Handle evictions
    }
}

// Hazelcast instance তৈরি
HazelcastInstance hz = Hazelcast.newHazelcastInstance();

// IMap তৈরি
IMap<String, String> map = hz.getMap("myMap");

// EntryListener যোগ করা
map.addEntryListener(new MyEntryListener(), true);  // 'true' means to include existing entries

কাজের প্রক্রিয়া:

  • entryAdded ট্রিগার হয় যখন একটি নতুন কিজি ভ্যালু পেয়ার IMap এ যুক্ত হয়।
  • entryUpdated ট্রিগার হয় যখন কোনো কিজি ভ্যালু পেয়ার আপডেট হয়।
  • entryRemoved ট্রিগার হয় যখন একটি কিজি ভ্যালু পেয়ার IMap থেকে মুছে ফেলা হয়।

2. ItemListener - IQueue, ISet, IList এর জন্য

ItemListener ব্যবহার করা হয় যখন আপনি ISet, IQueue বা IList এ আইটেম যোগ, মুছে ফেলা বা পরিবর্তন হওয়ার ইভেন্টগুলিকে ট্র্যাক করতে চান।

ব্যবহার:

  • itemAdded: যখন একটি নতুন আইটেম যোগ করা হয়।
  • itemRemoved: যখন কোনো আইটেম মুছে ফেলা হয়।

কোড উদাহরণ:

import com.hazelcast.core.ItemEvent;
import com.hazelcast.core.ItemListener;
import com.hazelcast.queue.IQueue;

public class MyItemListener implements ItemListener<String> {

    @Override
    public void itemAdded(ItemEvent<String> itemEvent) {
        System.out.println("Item added: " + itemEvent.getItem());
    }

    @Override
    public void itemRemoved(ItemEvent<String> itemEvent) {
        System.out.println("Item removed: " + itemEvent.getItem());
    }
}

// Hazelcast instance তৈরি
HazelcastInstance hz = Hazelcast.newHazelcastInstance();

// IQueue তৈরি
IQueue<String> queue = hz.getQueue("myQueue");

// ItemListener যোগ করা
queue.addItemListener(new MyItemListener(), true);  // 'true' means to include existing items

কাজের প্রক্রিয়া:

  • itemAdded ট্রিগার হয় যখন একটি নতুন আইটেম IQueue, ISet বা IList এ যোগ করা হয়।
  • itemRemoved ট্রিগার হয় যখন কোনো আইটেম IQueue, ISet বা IList থেকে মুছে ফেলা হয়।

3. MapListener - IMap এর জন্য (ডিস্ট্রিবিউটেড মেটাডেটা)

Hazelcast এ MapListener ডিস্ট্রিবিউটেড IMap এর আরও উন্নত ট্র্যাকিংয়ের জন্য ব্যবহৃত হয়। এটি আপনাকে ম্যাপের মধ্যে প্রবাহিত হওয়া কাস্টম ইভেন্টগুলির উপর নজর রাখতে দেয়।

ব্যবহার:

MapListener বিশেষত আরও কাস্টম ইভেন্ট (যেমন, যখন putAll, removeAll, বা অন্যান্য নির্দিষ্ট কার্যকলাপ সম্পন্ন হয়) ট্র্যাক করতে ব্যবহৃত হয়।


Real-time Data Processing উদাহরণ

ধরা যাক, একটি IMap ব্যবহার করে আমরা ই-কমার্স সাইটে প্রোডাক্টের stock quantity ট্র্যাক করতে চাই। আপনি যদি stock এর সংখ্যা একসাথে বাড়াতে বা কমাতে চান, তবে আপনার অ্যাপ্লিকেশনকে দ্রুত প্রতিক্রিয়া জানাতে হবে। EntryListener ব্যবহার করে আপনি যখনই stock সংখ্যাটি আপডেট করবেন, তখন তা real-time এ পেতে পারবেন।

কোড উদাহরণ:

public class StockEntryListener implements EntryListener<String, Integer> {

    @Override
    public void entryUpdated(EntryEvent<String, Integer> event) {
        String product = event.getKey();
        Integer newStock = event.getValue();
        System.out.println("Product stock updated: " + product + " new stock: " + newStock);
    }

    @Override
    public void entryAdded(EntryEvent<String, Integer> event) {}
    @Override
    public void entryRemoved(EntryEvent<String, Integer> event) {}
    @Override
    public void entryEvicted(EntryEvent<String, Integer> event) {}
}

HazelcastInstance hz = Hazelcast.newHazelcastInstance();
IMap<String, Integer> productStock = hz.getMap("productStock");

// EntryListener যোগ করা
productStock.addEntryListener(new StockEntryListener(), true);

// Stock আপডেট করা
productStock.put("Laptop", 20);

এই উদাহরণে, যখনই একটি product stock আপডেট হবে, entryUpdated ইভেন্ট ট্রিগার হবে এবং আপনি তার সাথে সাড়া দিতে পারবেন।


সারাংশ

Hazelcast Listeners রিয়েল-টাইম ডেটা প্রসেসিংয়ের জন্য একটি অত্যন্ত কার্যকর উপকরণ, যা ডিস্ট্রিবিউটেড ডেটা স্ট্রাকচারে (IMap, IQueue, ISet, IList) ডেটার পরিবর্তন সনাক্ত করে এবং তা অনুযায়ী অ্যাকশন নিতে সাহায্য করে। EntryListener, ItemListener এবং MapListener এই সকল ডেটা স্ট্রাকচারে কার্যকরভাবে ব্যবহার করা যায় এবং ডেটার পরিবর্তন দ্রুত সনাক্ত করতে সক্ষম হয়, যা real-time ইভেন্ট প্রসেসিংয়ের জন্য অপরিহার্য।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion